Secret Santa

Modifié par Clemni

Le Secret Santa est une tradition de Noël lors de laquelle les membres d'un groupe s'offrent des cadeaux.
Les noms de tous les participants sont inscrits sur des bulletins. Chaque participant se voit alors attribuer le nom d'un autre participant par le biais d'un tirage au sort. On espère qu'aucun de ces participants ne tire son propre nom : le cas échéant, on procède à un nouveau tirage.

Exercice

Compléter la fonction derangement_alea ci-dessous qui prend en argument un entier n et renvoie un dérangement aléatoire de taille n. Pour cela, on continuera de générer une permutation aléatoire jusqu'à ce que celle-ci soit sans point fixe.

def derangement_alea(n):
    derangement = False
    while not derangement :
        p = ...
        derangement = ...
    return p

On peut alors utiliser la fonction secret_santa ci-dessous pour déterminer qui offrira un cadeau à qui.

def secret_santa(L):
    d = derangement_alea(len(L))
    for i in range(len(L)) :
        print(L[i], "offre un cadeau à", L[d[i]])

L = ["Catherine", "Claire", "Evgény", "Hélène", "Jason", "Julie"]
secret_santa(L)

Source : https://lesmanuelslibres.region-academique-idf.fr
Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-terminale-specialite ou directement le fichier ZIP
Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0